Consulta de Guías Docentes



Academic Year/course: 2018/19

439 - Bachelor's Degree in Informatics Engineering

30245 - Software Architecture


Syllabus Information

Academic Year:
2018/19
Subject:
30245 - Software Architecture
Faculty / School:
110 - Escuela de Ingeniería y Arquitectura
Degree:
439 - Bachelor's Degree in Informatics Engineering
ECTS:
6.0
Year:
3
Semester:
Second semester
Subject Type:
---
Module:
---

4.1. Methodological overview

Learning process:
Study and work from the very first day. Teaching classes will be focussed on learning concepts and techniques for designing software architectures. The role of the student will be prominent both in teaching classes and in problem solving classes. The latter will focus on applying the theory to solve complex design problems. Work group will be guided to reach the development of a medium-sized software with special focus on documenting the architecture.

4.2. Learning tasks

Teaching classes will develop the Program of the course.
Problem solving classes will be focussed on design problems.
The students will develop a course project for developing and documenting the architecture of a software.

4.3. Syllabus

- Introduction to Software Architecture
- Documenting Software Architecture
       *Module View. Component and Connector View. Deployment View. Documenting Interfaces
- Architectural Patterns
      - MVC
      - Pipe and Filter
      - Shared Data
      - Publish-subscribe
      - Client/Server
      - Broker
      - Microkernel
      - Adaptive Architectures

4.4. Course planning and calendar

Calendar

- Problems and Theory (2 hours per week).
- Assessment of work groups. 30 minutes per group and week.

 

Students work
150 hours as follows:
30 hours for theory and problems classes
90 hours work group (including 7 hours of professor assessment)
25 hours individual work and study
5 hours for evaluation.

 

4.5. Bibliography and recommended resources

[BB: Bibliografía básica / BC: Bibliografía complementaria]

  • [BB] Documenting Software Architectures: Views and Beyond / Paul Clements...[et al.]. - 2nd ed. Addison-Wesley Professional, 2010
  • [BB] Pattern-Oriented Software Architecture. A System of Patterns / Frank Buschmann...[et al.] John Wiley & Sons, 1996
  • [BB] Web Services / Gustavo Alonso ... [et al.] Springer, 2004


Curso Académico: 2018/19

439 - Graduado en Ingeniería Informática

30245 - Arquitectura software


Información del Plan Docente

Año académico:
2018/19
Asignatura:
30245 - Arquitectura software
Centro académico:
110 - Escuela de Ingeniería y Arquitectura
Titulación:
439 - Graduado en Ingeniería Informática
Créditos:
6.0
Curso:
3
Periodo de impartición:
Segundo semestre
Clase de asignatura:
---
Módulo:
---

1.1. Objetivos de la asignatura

La asignatura y sus resultados previstos responden a los siguientes planteamientos y objetivos:

Tras haber cursado la asignatura de “Ingeniería del Software”, los alumnos saben aplicar técnicas de análisis y diseño orientado a objetos. En esta asignatura los alumnos aprenden a diseñar sistemas de software atendiendo a las estructuras fundamentales del mismo, es decir abstrayéndose de los detalles de sus componentes.

La asignatura presenta un catálogo de técnicas y patrones arquitecturales y los aplica a un conjunto de casos de estudio. Además se desarrolla un trabajo de asignatura que pone en práctica los conocimientos teóricos adquiridos.

1.2. Contexto y sentido de la asignatura en la titulación

La asignatura “Arquitectura Software” proporciona a los alumnos una introducción a algunas de las propuestas, técnicas y patrones necesarios para la construcción de sistemas software de tamaño mediano, grande y muy grande, a partir de los conocimientos adquiridos fundamentalmente en la asignatura de “Ingeniería del Software”. Es una asignatura obligatoria dentro de la especialidad en “Ingeniería del Software”.

1.3. Recomendaciones para cursar la asignatura

El alumno que curse esta asignatura ha de contar con una formación como la que se recibe en la asignatura de “Ingeniería del Software”.

2.1. Competencias

Al superar la asignatura, el estudiante será más competente para...

Concebir, diseñar y desarrollar proyectos de Ingeniería.

Resolver problemas y tomar decisiones con iniciativa, creatividad y razonamiento crítico.

Comunicar y transmitir conocimientos, habilidades y destrezas en castellano y en inglés.

Usar las técnicas, habilidades y herramientas de la Ingeniería necesarias para la práctica de la misma.

Desarrollar, mantener y evaluar servicios y sistemas software que satisfagan todos los requisitos del usuario y se comporten de forma fiable y eficiente, sean asequibles de desarrollar y mantener y cumplan normas de calidad, aplicando las teorías, principios, métodos y prácticas de la Ingeniería del Software.

Identificar y analizar problemas y diseñar, desarrollar, implementar, verificar y documentar soluciones software sobre la base de un conocimiento adecuado de las teorías, modelos y técnicas actuales.

2.2. Resultados de aprendizaje

El estudiante, para superar esta asignatura, deberá demostrar los siguientes resultados...

Sabe diseñar y documentar la arquitectura de un sistema de software, desde distintos puntos de vista y niveles de abstracción.

Conoce diferentes patrones arquitecturales y es capaz de aplicarlos para diseñar sistemas software.

Es capaz de proponer patrones arquitecturales originales aplicables al diseño de sistemas software.

Sabe aplicar técnicas aprendidas en "Ingeniería de Software" (casos de uso, modelado estructural y modelado dinámico) al diseño de arquitecturas software

Conoce y utiliza herramientas CASE para diseñar y documentar arquitecturas software.

2.3. Importancia de los resultados de aprendizaje

Conocer técnicas específicas de diseño de arquitecturas software facilita concebir y llevar a cabo sistemas medianos, grandes o muy grandes. Este tipo de técnicas ayudan a diseñar y documentar sistemas software mantenibles, eficientes y escalables, aplicando los patrones arquitecturales más adecuados para cada caso. Los conocimientos de arquitectura de software permitirán a los alumnos crecer como ingenieros, siendo éstos clave para enlazar sus conocimientos previos sobre programación e ingeniería del software con el desarrollo profesional de sistemas de software grandes.

3.1. Tipo de pruebas y su valor sobre la nota final y criterios de evaluación para cada prueba

El estudiante deberá demostrar que ha alcanzado los resultados de aprendizaje previstos mediante las siguientes actividades de evaluacion

Convocatoria de Junio. La evaluación de la asignatura se realiza en base a dos pruebas:

P1. Ejercicios del curso. Se requiere una nota mínima de 5.0 puntos en esta prueba para aprobar la asignatura. Si se obtiene esta nota mínima, entonces la prueba pondera un 40% en la nota de la asignatura.

P2. Trabajo de asignatura. Es obligatorio presentar este trabajo y obtener una nota mínima de 5.0 puntos para aprobar la asignatura. Si se obtiene esta nota mínima, entonces esta prueba pondera un 60% en la nota de la asignatura. Cada grupo deberá entregar y defender un trabajo focalizado en las diferentes vistas de la arquitectura de un software realizado durante el curso.

Es obligatorio realizar y entregar las dos pruebas para poder aprobar la asignatura. Si en alguna prueba, la nota obtenida fuera inferior a 5.0, la calificación final de la asignatura será la media ponderada de todas las calificaciones (40% P1 y 60% P2), con un máximo de 4.0.

Convocatoria de Septiembre. La evaluación de la asignatura se realiza en base a dos pruebas análogas a las de la convocatoria de Junio, con las mismas ponderaciones y exigencia de notas mínimas Las calificaciones del alumno obtenidas en la convocatoria de Junio en cualquier de las dos pruebas se mantienen en Septiembre, salvo que el alumno opte por presentarse a la prueba correspondiente en esta nueva convocatoria, en cuyo caso prevalecerá la nueva calificación.

4.1. Presentación metodológica general

El proceso de aprendizaje que se ha diseñado para esta asignatura se basa en lo siguiente:

  1. El estudio y trabajo continuado desde el primer día de clase. El aprendizaje de conceptos y técnicas para el diseño y documentación de arquitecturas de software a través de las clases magistrales, en las que se favorecerá la participación de los alumnos. En las clases de problemas, la aplicación de los conocimientos adquiridos en las clases magistrales para resolver problemas de diseño y documentación de la arquitectura del software de aplicaciones de ejemplo. En estas clases los alumnos desempeñarán un papel activo en la discusión y resolución de los problemas.
  2.  El trabajo en equipo, donde los alumnos desarrollan, bajo la supervisión de los profesores, un trabajo focalizado en un software realizado durante el curso.

4.2. Actividades de aprendizaje

El programa que se ofrece al estudiante para ayudarle a lograr los resultados previstos comprende las siguientes actividades...

En las clases impartidas en el aula se desarrollará el temario de la asignatura.

En las clases de problemas se resolverán problemas de aplicación de los conceptos y técnicas presentadas en el programa de la asignatura.

Se realizará un trabajo que consistirá en diseñar y documentar la arquitectura de un sistema software.

4.3. Programa

  • Introducción a la arquitectura de software
  • Documentación de la arquitectura software
    •  Vista de Módulos; Vista de Componente y Conector. Vista de Distribución
    •  Documentación de interfaces
  • Patrones arquitecturales
    • Cliente/Servidor
    • Broker
    • MVC
    • Publicación-suscripción
    • Microkernel
    • Arquitecturas adaptativas

4.4. Planificación de las actividades de aprendizaje y calendario de fechas clave

Calendario de sesiones presenciales y presentación de trabajos

La organización docente prevista de la asignatura es la siguiente.

  • Clases teóricas y de problemas (2 horas semanales).
  • Tutorías de los trabajos en grupo. Sesiones semanales de treinta minutos con cada grupo. En ellas los profesores realizan el seguimiento (asesoría y corrección) del trabajo de curso.

Trabajo

Trabajo del estudiante

La dedicación del estudiante para alcanzar los resultados de aprendizaje en esta asignatura se estima en 150 horas distribuidas del siguiente modo:

  • 30 horas, aproximadamente, de actividades presenciales (sesiones en el aula teóricas -20- y de problemas -10-)
  • 90 horas de trabajo en grupo (incluyen aproximadamente 7 horas de seguimiento y tutoría realizadas con el profesor)
  • 25 horas de trabajo y estudio individual efectivo (estudio de apuntes y textos, resolución de problemas y preparación de clases)
  • 5 horas dedicadas a las pruebas de evaluación.

 

El calendario de exámenes y las fechas de entrega de trabajos se anunciará con suficiente antelación.

4.5. Bibliografía y recursos recomendados

[BB: Bibliografía básica / BC: Bibliografía complementaria]

  • [BB] Documenting Software Architectures: Views and Beyond / Paul Clements...[et al.]. - 2nd ed. Addison-Wesley Professional, 2010
  • [BB] Pattern-Oriented Software Architecture. A System of Patterns / Frank Buschmann...[et al.] John Wiley & Sons, 1996
  • [BB] Web Services / Gustavo Alonso ... [et al.] Springer, 2004